<!doctype html>
<html>
<head>
<link rel="icon" type="image/x-ico" href="./common/logo_devs.png"/>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>

<style type='text/css'>html {overflow-x: initial !important;}:root { --bg-color:#ffffff; --text-color:#333333; --select-text-bg-color:#B5D6FC; --select-text-font-color:auto; --monospace:"Lucida Console",Consolas,"Courier",monospace; --title-bar-height:20px; }
.mac-os-11 { --title-bar-height:28px; }
html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
body { margin: 0px; padding: 0px; height: auto; inset: 0px; font-size: 1rem; line-height: 1.42857; overflow-x: hidden; background: inherit; tab-size: 4; }
iframe { margin: auto; }
a.url { word-break: break-all; }
a:active, a:hover { outline: 0px; }
.in-text-selection, ::selection { text-shadow: none; background: var(--select-text-bg-color); color: var(--select-text-font-color); }
#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; overflow-wrap: break-word; position: relative; white-space: normal; overflow-x: visible; padding-top: 36px; }
#write.first-line-indent p { text-indent: 2em; }
#write.first-line-indent li p, #write.first-line-indent p * { text-indent: 0px; }
#write.first-line-indent li { margin-left: 2em; }
.for-image #write { padding-left: 8px; padding-right: 8px; }
body.typora-export { padding-left: 30px; padding-right: 30px; }
.typora-export .footnote-line, .typora-export li, .typora-export p { white-space: pre-wrap; }
.typora-export .task-list-item input { pointer-events: none; }
@media screen and (max-width: 500px) {
  body.typora-export { padding-left: 0px; padding-right: 0px; }
  #write { padding-left: 20px; padding-right: 20px; }
  .CodeMirror-sizer { margin-left: 0px !important; }
  .CodeMirror-gutters { display: none !important; }
}
#write li > figure:last-child { margin-bottom: 0.5rem; }
#write ol, #write ul { position: relative; }
img { max-width: 100%; vertical-align: middle; image-orientation: from-image; }
button, input, select, textarea { color: inherit; font: inherit; }
input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
*, ::after, ::before { box-sizing: border-box; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p, #write pre { width: inherit; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p { position: relative; }
p { line-height: inherit; }
h1, h2, h3, h4, h5, h6 { break-after: avoid-page; break-inside: avoid; orphans: 4; }
p { orphans: 4; }
h1 { font-size: 2rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.6rem; }
h4 { font-size: 1.4rem; }
h5 { font-size: 1.2rem; }
h6 { font-size: 1rem; }
.md-math-block, .md-rawblock, h1, h2, h3, h4, h5, h6, p { margin-top: 1rem; margin-bottom: 1rem; }
.hidden { display: none; }
.md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic; }
a { cursor: pointer; }
sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; cursor: pointer; }
sup.md-footnote a, sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit; }
#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; }
figure { overflow-x: auto; margin: 1.2em 0px; max-width: calc(100% + 16px); padding: 0px; }
figure > table { margin: 0px; }
tr { break-inside: avoid; break-after: auto; }
thead { display: table-header-group; }
table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; }
table.md-table td { min-width: 32px; }
.CodeMirror-gutters { border-right: 0px; background-color: inherit; }
.CodeMirror-linenumber { user-select: none; }
.CodeMirror { text-align: left; }
.CodeMirror-placeholder { opacity: 0.3; }
.CodeMirror pre { padding: 0px 4px; }
.CodeMirror-lines { padding: 0px; }
div.hr:focus { cursor: none; }
#write pre { white-space: pre-wrap; }
#write.fences-no-line-wrapping pre { white-space: pre; }
#write pre.ty-contain-cm { white-space: normal; }
.CodeMirror-gutters { margin-right: 4px; }
.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background: inherit; position: relative !important; }
.md-fences-adv-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
#write .md-fences.mock-cm { white-space: pre-wrap; }
.md-fences.md-fences-with-lineno { padding-left: 0px; }
#write.fences-no-line-wrapping .md-fences.mock-cm { white-space: pre; overflow-x: auto; }
.md-fences.mock-cm.md-fences-with-lineno { padding-left: 8px; }
.CodeMirror-line, twitterwidget { break-inside: avoid; }
.footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em; }
.footnotes + .footnotes { margin-top: 0px; }
.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background: 0px 0px; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; -webkit-tap-highlight-color: transparent; line-height: normal; font-weight: 400; text-align: left; box-sizing: content-box; direction: ltr; }
li div { padding-top: 0px; }
blockquote { margin: 1rem 0px; }
li .mathjax-block, li p { margin: 0.5rem 0px; }
li blockquote { margin: 1rem 0px; }
li { margin: 0px; position: relative; }
blockquote > :last-child { margin-bottom: 0px; }
blockquote > :first-child, li > :first-child { margin-top: 0px; }
.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal; }
#write .footnote-line { white-space: pre-wrap; }
@media print {
  body, html { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; font-variant-ligatures: no-common-ligatures; }
  #write { margin-top: 0px; padding-top: 0px; border-color: transparent !important; }
  .typora-export * { -webkit-print-color-adjust: exact; }
  .typora-export #write { break-after: avoid; }
  .typora-export #write::after { height: 0px; }
  .is-mac table { break-inside: avoid; }
  .typora-export-show-outline .typora-export-sidebar { display: none; }
}
.footnote-line { margin-top: 0.714em; font-size: 0.7em; }
a img, img a { cursor: pointer; }
pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background: rgb(204, 204, 204); display: block; overflow-x: hidden; }
p > .md-image:only-child:not(.md-img-error) img, p > img:only-child { display: block; margin: auto; }
#write.first-line-indent p > .md-image:only-child:not(.md-img-error) img { left: -2em; position: relative; }
p > .md-image:only-child { display: inline-block; width: 100%; }
#write .MathJax_Display { margin: 0.8em 0px 0px; }
.md-math-block { width: 100%; }
.md-math-block:not(:empty)::after { display: none; }
.MathJax_ref { fill: currentcolor; }
[contenteditable="true"]:active, [contenteditable="true"]:focus, [contenteditable="false"]:active, [contenteditable="false"]:focus { outline: 0px; box-shadow: none; }
.md-task-list-item { position: relative; list-style-type: none; }
.task-list-item.md-task-list-item { padding-left: 0px; }
.md-task-list-item > input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px); border: none; }
.math { font-size: 1rem; }
.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; }
.md-toc-content { position: relative; margin-left: 0px; }
.md-toc-content::after, .md-toc::after { display: none; }
.md-toc-item { display: block; color: rgb(65, 131, 196); }
.md-toc-item a { text-decoration: none; }
.md-toc-inner:hover { text-decoration: underline; }
.md-toc-inner { display: inline-block; cursor: pointer; }
.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700; }
.md-toc-h2 .md-toc-inner { margin-left: 2em; }
.md-toc-h3 .md-toc-inner { margin-left: 4em; }
.md-toc-h4 .md-toc-inner { margin-left: 6em; }
.md-toc-h5 .md-toc-inner { margin-left: 8em; }
.md-toc-h6 .md-toc-inner { margin-left: 10em; }
@media screen and (max-width: 48em) {
  .md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
  .md-toc-h4 .md-toc-inner { margin-left: 5em; }
  .md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
  .md-toc-h6 .md-toc-inner { margin-left: 8em; }
}
a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
.footnote-line a:not(.reversefootnote) { color: inherit; }
.md-attr { display: none; }
.md-fn-count::after { content: "."; }
code, pre, samp, tt { font-family: var(--monospace); }
kbd { margin: 0px 0.1em; padding: 0.1em 0.6em; font-size: 0.8em; color: rgb(36, 39, 41); background: rgb(255, 255, 255); border: 1px solid rgb(173, 179, 185); border-radius: 3px; box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px, rgb(255, 255, 255) 0px 0px 0px 2px inset; white-space: nowrap; vertical-align: middle; }
.md-comment { color: rgb(162, 127, 3); opacity: 0.6; font-family: var(--monospace); }
code { text-align: left; vertical-align: initial; }
a.md-print-anchor { white-space: pre !important; border-width: initial !important; border-style: none !important; border-color: initial !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: 0px !important; background: 0px 0px !important; text-decoration: initial !important; text-shadow: initial !important; }
.os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif; }
.md-diagram-panel > svg { max-width: 100%; }
[lang="flow"] svg, [lang="mermaid"] svg { max-width: 100%; height: auto; }
[lang="mermaid"] .node text { font-size: 1rem; }
table tr th { border-bottom: 0px; }
video { max-width: 100%; display: block; margin: 0px auto; }
iframe { max-width: 100%; width: 100%; border: none; }
.highlight td, .highlight tr { border: 0px; }
mark { background: rgb(255, 255, 0); color: rgb(0, 0, 0); }
.md-html-inline .md-plain, .md-html-inline strong, mark .md-inline-math, mark strong { color: inherit; }
.md-expand mark .md-meta { opacity: 0.3 !important; }
mark .md-meta { color: rgb(0, 0, 0); }
@media print {
  .typora-export h1, .typora-export h2, .typora-export h3, .typora-export h4, .typora-export h5, .typora-export h6 { break-inside: avoid; }
}
.md-diagram-panel .messageText { stroke: none !important; }
.md-diagram-panel .start-state { fill: var(--node-fill); }
.md-diagram-panel .edgeLabel rect { opacity: 1 !important; }
.md-fences.md-fences-math { font-size: 1em; }
.md-fences-advanced:not(.md-focus) { padding: 0px; white-space: nowrap; border: 0px; }
.md-fences-advanced:not(.md-focus) { background: inherit; }
.typora-export-show-outline .typora-export-content { max-width: 1440px; margin: auto; display: flex; flex-direction: row; }
.typora-export-sidebar { width: 300px; font-size: 0.8rem; margin-top: 80px; margin-right: 18px; }
.typora-export-show-outline #write { --webkit-flex:2; flex: 2 1 0%; }
.typora-export-sidebar .outline-content { position: fixed; top: 0px; max-height: 100%; overflow: hidden auto; padding-bottom: 30px; padding-top: 60px; width: 300px; }
@media screen and (max-width: 1024px) {
  .typora-export-sidebar, .typora-export-sidebar .outline-content { width: 240px; }
}
@media screen and (max-width: 800px) {
  .typora-export-sidebar { display: none; }
}
.outline-content li, .outline-content ul { margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; list-style: none; }
.outline-content ul { margin-top: 0px; margin-bottom: 0px; }
.outline-content strong { font-weight: 400; }
.outline-expander { width: 1rem; height: 1.42857rem; position: relative; display: table-cell; vertical-align: middle; cursor: pointer; padding-left: 4px; }
.outline-expander::before { content: ""; position: relative; font-family: Ionicons; display: inline-block; font-size: 8px; vertical-align: middle; }
.outline-item { padding-top: 3px; padding-bottom: 3px; cursor: pointer; }
.outline-expander:hover::before { content: ""; }
.outline-h1 > .outline-item { padding-left: 0px; }
.outline-h2 > .outline-item { padding-left: 1em; }
.outline-h3 > .outline-item { padding-left: 2em; }
.outline-h4 > .outline-item { padding-left: 3em; }
.outline-h5 > .outline-item { padding-left: 4em; }
.outline-h6 > .outline-item { padding-left: 5em; }
.outline-label { cursor: pointer; display: table-cell; vertical-align: middle; text-decoration: none; color: inherit; }
.outline-label:hover { text-decoration: underline; }
.outline-item:hover { border-color: rgb(245, 245, 245); background-color: var(--item-hover-bg-color); }
.outline-item:hover { margin-left: -28px; margin-right: -28px; border-left: 28px solid transparent; border-right: 28px solid transparent; }
.outline-item-single .outline-expander::before, .outline-item-single .outline-expander:hover::before { display: none; }
.outline-item-open > .outline-item > .outline-expander::before { content: ""; }
.outline-children { display: none; }
.info-panel-tab-wrapper { display: none; }
.outline-item-open > .outline-children { display: block; }
.typora-export .outline-item { padding-top: 1px; padding-bottom: 1px; }
.typora-export .outline-item:hover { margin-right: -8px; border-right: 8px solid transparent; }
.typora-export .outline-expander::before { content: "+"; font-family: inherit; top: -1px; }
.typora-export .outline-expander:hover::before, .typora-export .outline-item-open > .outline-item > .outline-expander::before { content: "−"; }
.typora-export-collapse-outline .outline-children { display: none; }
.typora-export-collapse-outline .outline-item-open > .outline-children, .typora-export-no-collapse-outline .outline-children { display: block; }
.typora-export-no-collapse-outline .outline-expander::before { content: "" !important; }
.typora-export-show-outline .outline-item-active > .outline-item .outline-label { font-weight: 700; }
.md-inline-math-container mjx-container { zoom: 0.95; }


 :root {
    --side-bar-bg-color: #d9ede5;
	--control-text-color: #6B6B6B;
	--active-file-bg-color: #ecf6f2;
	--active-file-border-color: #6B6B6B;
	--active-file-text-color: #202020;
	--table-even-row-color:#f8fcfa;
	--table-head-color:#d9ede5;
	--deep-theme-color: #4eb289;
	--code-block-bg-color: #0F111A;

	
}

/*serif*/
/*monospace*/
/*Chinese*/
html{
	font-size: 16px;
}

body {
    font-family: 'Lexend','SourceCodePro','NotoSansSC';
	font-weight: normal;
	line-height: 1.5rem;
	letter-spacing: 0;
    margin: 0;
}

#write {
	max-width: 900px;
    padding: 30px 50px 20px;
}

#write p{
	text-align:left;
}

#write pre.md-meta-block {
	padding: 1rem;
	font-size: 85%;
	line-height: 1.45;
	background-color: #f7f7f7;
	border: 0;
	border-radius: 3px;
	color: #777777;
	margin-top: 0 !important;
}

.md-image>.md-meta {
    color: #777777;
    font-size: 0.9rem;
	font-family: 'Lexend';
    padding: 4px 0;
}


@media print {
  html {
    font-size: 12px;
  }

  table,
  pre {
    page-break-inside: avoid;
  }

  pre {
    word-wrap: break-word;
  }
  
  @page {
    size: A4; 
    margin-left: 0;
    margin-right: 0;
  }
}

/*toc*/
.md-toc { 
    margin-top:20px;
    padding-bottom:20px;
	color: var(--deep-theme-color);
}

a {
	color: var(--deep-theme-color);
	text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

/*headers*/
h1,h2,h3,h4,h5,h6 {
	display: block;
	font-weight:bold;
}

h1 {
	font-size: 2em;
	margin-top: 0.67em;
	margin-bottom: 0.67em;
}

h2 {
	font-size: 1.5em;
	margin-top: 0.83em;
	margin-bottom: 0.83em;
}

h3 {
	font-size: 1.17em;
	margin-top: 1em;
	margin-bottom: 1em;
}

h4 {
	font-size: 1em;
	margin-top: 1.33em;
	margin-bottom: 1.33em;
}

h5 {
	font-size: 1em;
	margin-top: 1.33em;
	margin-bottom: 1.33em;
	color: #777777;
}

h6 {
	font-size: 1em;
	margin-top: 1.33em;
	margin-bottom: 1.33em;
	color: #adadad;
}

p,
blockquote,
ul,
ol,
dl,
table {
	margin: 0.8rem 0;
}

/*table*/
table {
	border-collapse: collapse;
	padding: 0;
    word-break: initial;
	table-layout: fixed;
	width: 100%;
}

table tr:nth-child(even){
    background-color: var(--table-even-row-color);
}

thead{
	background-color: var(--table-head-color);
}

table th{
	text-align: center;
	padding:6px 13px;
	border: 1px solid var(--table-head-color);
}

table td{
	padding:6px 13px;
	border: 1px solid var(--table-head-color);
}
table tr{
	padding:6px 13px;
	border: 1px solid var(--table-head-color);
}

/*blockquote*/
blockquote {
	border-left: 0.2rem solid var(--side-bar-bg-color);
	color: #777777;
	font-family: 'Lexend','NotoSansSC';
	font-size: 0.9rem;
	padding-left: 2rem;
}


/*list*/

li p.first {
    display: inline-block;
}
ul,
ol {
    padding-left: 30px;
}
ul:first-child,
ol:first-child {
    margin-top: 0;
}
ul:last-child,
ol:last-child {
    margin-bottom: 0;
}

.md-task-list-item:hover > input:before,
input[type='checkbox']:hover:before {
	opacity: 1;
	transition: 0.5s;
	background-color: var(--side-bar-bg-color);
}

.task-list-item input::before {
    content: "";
    display: inline-block;
	border-radius: 1.1rem;
    vertical-align: middle;
    border: 1.2px solid var(--deep-theme-color);
    background-color: #ffffff;
	width: 1.1rem;
    height: 1.1rem;
	margin-left: -0.1rem;
    margin-right: 0.1rem;
    margin-top: -0.68rem; 
}


.task-list-item input:checked::before {
    padding-left: 0.125em;
    content: '✔';
    color:white;
	background-color: var(--deep-theme-color);
    font-size: 0.8rem;
    line-height: 0.95rem;
    margin-top: -0.68rem;
	transition: background-color 200ms ease-in-out;
}



.task-list-done {
    text-decoration: line-through;
    color: #adadad;
}

hr {
	border-style: none;
    border-top-style: solid;
    border-color: #e7e7e7;
    border-width: 1px;
	margin: 2rem 0;
}


/*highlight*/
#write mark {
	background-color: #c7ffe8;
	border-radius: 2px;
	color: black;
	padding: 0 4px;
	margin: 0 2px;
}

/*inline code*/
#write code,tt {
	padding: 0.6px 4px;
	border-radius: 2px;
	background-color: #f1f1f1;
	font-family: 'SourceCodePro',Consolas,Courier, Monospace !important,宋体;
	font-size: 0.9rem;
	color: var(--code-block-bg-color);
	margin: 0 2px;
}

/*footnote*/
#write .md-footnote {
	color: #777777;
	background-color: #f7f7f7;
}

/*source code mode*/
.cm-s-typora-default .cm-header {
	color:var(--code-block-bg-color);
}
.cm-s-typora-default .cm-link {
	color:var(--deep-theme-color);

}


/*code block*/
#write .md-fences {
    font-size: 1rem;
    margin: 0.2em 0;
    padding: 0.5em;
    border-radius: 3px;
	font-size: 0.9em;
    font-family: 'SourceCodePro',Consolas,Courier, Monospace !important,宋体;
    background-color: var(--code-block-bg-color);
    color: #A9B7C6;
    border: none;
	text-shadow: none;
}

.md-fences .code-tooltip {
	background-color: var(--code-block-bg-color);
}

/*
  Name:       material-ocean
  Author:     Mattia Astorino (http://github.com/equinusocio)
  Website:    https://material-theme.site/
*/

.cm-s-inner.CodeMirror {
  background-color: #0F111A;
  color: #8F93A2;
}

.cm-s-inner .CodeMirror-gutters {
  background: #0F111A;
  color: #464B5D;
  border: none;
}

.cm-s-inner .CodeMirror-linenumber {color: #464B5D;}
.cm-s-inner .CodeMirror-guttermarker { color: #FFEE80; }
.cm-s-inner .CodeMirror-guttermarker-subtle { color: #D0D0D0; }

/*
.cm-s-inner .CodeMirror-cursor {
  border-left: 1px solid #FFCC00;
}
.cm-s-inner.cm-fat-cursor .CodeMirror-cursor {
  background-color: #FFCC00 !important;
}
.cm-s-inner .cm-animate-fat-cursor {
  background-color: #FFCC00 !important;
}
*/

.cm-s-inner .CodeMirror-cursor { border-left: 1px solid #A9B7C6; }
.cm-s-inner div.CodeMirror-cursor { border-left: 1px solid #ffffff; }
.cm-s-inner div.CodeMirror-selected {
  background: rgba(113, 124, 180, 0.2);
}

.cm-s-inner.CodeMirror-focused div.CodeMirror-selected {
  background: rgba(113, 124, 180, 0.2);
}

.cm-s-inner .CodeMirror-selected{ background: #214283 !important; }
.cm-s-inner .CodeMirror-selectedtext { background: #214283 !important; }
.cm-overlay.CodeMirror-selectedtext { background: #B5D6FC !important; }

.cm-s-inner .CodeMirror-line::selection,
.cm-s-inner .CodeMirror-line>span::selection,
.cm-s-inner .CodeMirror-line>span>span::selection {
  background: rgba(128, 203, 196, 0.2);
}

.cm-s-inner .CodeMirror-line::-moz-selection,
.cm-s-inner .CodeMirror-line>span::-moz-selection,
.cm-s-inner .CodeMirror-line>span>span::-moz-selection {
  background: rgba(128, 203, 196, 0.2);
}

.cm-s-inner .CodeMirror-activeline-background {
  background: rgba(0, 0, 0, 0.5);
}

.cm-s-inner .cm-keyword {
  color: #C792EA;
}

.cm-s-inner .cm-operator {
  color: #89DDFF;
}

.cm-s-inner .cm-variable-2 {
  color: #EEFFFF;
}

.cm-s-inner .cm-variable-3,
.cm-s-inner .cm-type {
  color: #f07178;
}

.cm-s-inner .cm-builtin {
  color: #FFCB6B;
}

.cm-s-inner .cm-atom {
  color: #F78C6C;
}

.cm-s-inner .cm-number {
  color: #FF5370;
}

.cm-s-inner .cm-def {
  color: #82AAFF;
}

.cm-s-inner .cm-string {
  color: #C3E88D;
}

.cm-s-inner .cm-string-2 {
  color: #f07178;
}

.cm-s-inner .cm-comment {
  color: #585d6d;
}

.cm-s-inner .cm-variable {
  color: #f07178;
}

.cm-s-inner .cm-tag {
  color: #FF5370;
}

.cm-s-inner .cm-meta {
  color: #FFCB6B;
}

.cm-s-inner .cm-attribute {
  color: #C792EA;
}

.cm-s-inner .cm-property {
  color: #C792EA;
}

.cm-s-inner .cm-qualifier {
  color: #DECB6B;
}

.cm-s-inner .cm-variable-3,
.cm-s-inner .cm-type {
  color: #DECB6B;
}


.cm-s-inner .cm-error {
  color: rgba(255, 255, 255, 1.0);
  background-color: #FF5370;
}

.cm-s-inner .CodeMirror-matchingbracket {
  text-decoration: underline;
  color: white !important;
}


@import "";

:root {
  
  --bg-color: #ffffff;
  --text-color: #000000;
  --side-bar-bg-color: #232325;
  --control-text-color: #7a7b7e;
  --active-file-bg-color: #19191b;
  --active-file-border-color: #aa8b13;
  --active-file-text-color: #aa8b13;
  --table-head-color:#232325;
  --mint-light-color:#d9ede5;
  --deep-theme-color: #aa8b13;
  --code-block-bg-color: #0F111A;
  --rawblock-edit-panel-bd: #232325;
  --footer-box:#6a6b6e;
  --select-text-bg-color:#7a88a3;
  --item-hover-bg-color: #56575a;
  --window-border: 1px solid #39393a;
  --highlight-color:#aa8b13;
}

#write {
	max-width: 1186.56px;
}

#write pre.md-meta-block {
	background-color: var(--item-hover-bg-color);
	color: var(--text-color);
}

/*source code mode*/
.cm-s-typora-default .cm-header {
	color:var(--mint-light-color);
}
.cm-s-typora-default .cm-link {
	color:var(--deep-theme-color);

}

/*table*/
table tr:nth-child(even){
    background-color: var(--bg-color);
}

thead{
	background-color: var(--table-head-color);
  color: var(--deep-theme-color);
}

table th{
	border: 1px solid var(--mint-light-color);
}

table td{
	border: 1px solid var(--mint-light-color);
}
table tr{
	border: 1px solid var(--mint-light-color);
}


/* footer */
footer.ty-footer {
  border: none;
}

.footer-item:hover {
  background-color: var(--footer-box);
}

/*megamenu*/


/* preferences */
.ty-preferences .window-header{
  background-color: var(--active-file-bg-color);
}

.ty-preferences .nav-group-item:hover {
  background-color: var(--item-hover-bg-color);
}

.btn:hover,
.button-hover,
.md-image-btn:hover {
  background-color:#39393a !important;
  color: var(--text-color);
}

.menu-style-btn:hover {
  background-color: var(--item-hover-bg-color);
  border: none;
}

/*blockquote*/
blockquote {
	border-left: 0.2rem solid var(--deep-theme-color);
	color: #919191;
}

/*checkbox*/
.md-task-list-item:hover > input:before,
input[type='checkbox']:hover:before {
	background-color: #505052;
}

.task-list-item input::before {
  border: 1.2px solid var(--deep-theme-color);
  background-color:var(--bg-color);
}

.task-list-item input:checked::before {
  color:var(--bg-color);
  font-weight: 600;
	background-color: var(--deep-theme-color);
}

.task-list-done {
  color: #777777;
}

/*highlight*/
#write mark {
	background-color: var(--highlight-color);
	color:#fff;
}

/*inline code*/
#write code,tt {
  padding: 2px 4px;
	border-radius: 2px;
	background-color: var(--code-block-bg-color);
	color: var(--text-color);
  margin: 0 2px;
}

/*footnote*/
#write .md-footnote {
	color: #777777;
	background-color: var(--code-block-bg-color);
}


</style><title>help document</title>
</head>
<body class='typora-export os-windows'><div class='typora-export-content'>
<div id='write'  class=''>﻿﻿﻿﻿<style>
 .md-toc{z-index:999;display: block; position: fixed; left: 4px; top: 4px; width: 200px; color:#cc8b13; font-size:12px; line-height:1.4;}
</style><div align="center">
    <img src="./common/logo_devs.png">
    <center><font color="#cc8b13" size="5" face="Microsoft YaHei">SilkDevTools</font></center>
</div>
<div align="right">
<font color="#cc8b13" size="3" face="Microsoft YaHei">Programmer's powerful local build tool</font>
<br>
<font color="#aa8b13" size="3" face="Microsoft YaHei">permanently free</font>
</div><h1 id='introduction'><font color="#cc8b13" size=5 face="Microsoft YaHei"><span>introduction</span></font></h1><hr /><p><font color="#1395F9" size=3 face="Microsoft YaHei"><span>　SilkDevTools, powerful local construction tools, provides all-round static detection, dynamic detection, code tools and various convenient plug-in tools for the project. Scan the program code through lexical analysis, syntax analysis, control flow, data flow analysis, memory detection, code coverage, hot function detection and other technologies to verify whether the code meets the standardization Safety, reliability, maintainability and other indicators. Deeply optimize the code according to the analysis results, improve the code quality and enhance the robustness of the product.</span>
</font></p><div align="center">
    <img src="./images_en/cap001.png">
</div><div align="center">
    <img src="./images_en/cap000.png" width="100%" height="100%">
</div><div class='md-toc' mdtype='toc'><p class="md-toc-content" role="list"><span role="listitem" class="md-toc-item md-toc-h1" data-ref="n5"><a class="md-toc-inner" href="#introduction">introduction</a></span><span role="listitem" class="md-toc-item md-toc-h1" data-ref="n12"><a class="md-toc-inner" href="#user-guide">user guide</a></span><span role="listitem" class="md-toc-item md-toc-h2" data-ref="n14"><a class="md-toc-inner" href="#quick-tutorial">quick tutorial</a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n15"><a class="md-toc-inner" href="#installing-software">installing software </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n17"><a class="md-toc-inner" href="#add-the-project">add the project </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n19"><a class="md-toc-inner" href="#one-key-analysis">one key analysis </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n21"><a class="md-toc-inner" href="#check-the-report-1">check the report </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n23"><a class="md-toc-inner" href="#adding-development-tools">adding development tools </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n25"><a class="md-toc-inner" href="#adding-user-tools">adding user Tools </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n27"><a class="md-toc-inner" href="#run-the-plug-in-tool">run the plug-in tool </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n29"><a class="md-toc-inner" href="#recording-code-snippets">recording code snippets </a></span><span role="listitem" class="md-toc-item md-toc-h1" data-ref="n31"><a class="md-toc-inner" href="#the-detailed-function">The detailed function</a></span><span role="listitem" class="md-toc-item md-toc-h2" data-ref="n33"><a class="md-toc-inner" href="#workbench">workbench </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n34"><a class="md-toc-inner" href="#overview">overview</a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n36"><a class="md-toc-inner" href="#project-indicators">project indicators </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n39"><a class="md-toc-inner" href="#compilation-run">compilation run </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n41"><a class="md-toc-inner" href="#static-analysis">static analysis </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n43"><a class="md-toc-inner" href="#dynamic-analysis">dynamic analysis </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n45"><a class="md-toc-inner" href="#code-tools">code tools </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n47"><a class="md-toc-inner" href="#check-the-report-2">check the report </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n49"><a class="md-toc-inner" href="#automatic-operation">automatic operation </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n51"><a class="md-toc-inner" href="#task-manager">task manager </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n53"><a class="md-toc-inner" href="#other-details">other details</a></span><span role="listitem" class="md-toc-item md-toc-h2" data-ref="n55"><a class="md-toc-inner" href="#tool-kit">tool kit</a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n56"><a class="md-toc-inner" href="#system-tools">system tools </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n58"><a class="md-toc-inner" href="#the-user-tools">the user tools </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n60"><a class="md-toc-inner" href="#plug-in-tool">plug-in tool </a></span><span role="listitem" class="md-toc-item md-toc-h2" data-ref="n62"><a class="md-toc-inner" href="#portfolio">portfolio </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n64"><a class="md-toc-inner" href="#folder">folder</a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n66"><a class="md-toc-inner" href="#adding-snippets">adding snippets </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n68"><a class="md-toc-inner" href="#modifying-snippets">modifying snippets </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n70"><a class="md-toc-inner" href="#deleting-code-snippets">deleting code snippets </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n72"><a class="md-toc-inner" href="#rename-folders">rename folders </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n74"><a class="md-toc-inner" href="#delete-folders">delete folders </a></span><span role="listitem" class="md-toc-item md-toc-h2" data-ref="n76"><a class="md-toc-inner" href="#settings">settings </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n77"><a class="md-toc-inner" href="#multilanguage-switching">multilanguage switching </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n79"><a class="md-toc-inner" href="#settings---general">settings - General </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n81"><a class="md-toc-inner" href="#setup---compile">setup - compile </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n83"><a class="md-toc-inner" href="#setup---analysis">setup - Analysis </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n85"><a class="md-toc-inner" href="#settings---documents">settings - Documents </a></span><span role="listitem" class="md-toc-item md-toc-h1" data-ref="n87"><a class="md-toc-inner" href="#use-skill">use skill </a></span><span role="listitem" class="md-toc-item md-toc-h1" data-ref="n89"><a class="md-toc-inner" href="#common-problem">common problem </a></span><span role="listitem" class="md-toc-item md-toc-h1" data-ref="n91"><a class="md-toc-inner" href="#support">support </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n93"><a class="md-toc-inner" href="#support-content">support content </a></span><span role="listitem" class="md-toc-item md-toc-h1" data-ref="n96"><a class="md-toc-inner" href="#service">Service </a></span><span role="listitem" class="md-toc-item md-toc-h1" data-ref="n99"><a class="md-toc-inner" href="#about-us">about us </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n101"><a class="md-toc-inner" href="#contact-information">contact information </a></span><span role="listitem" class="md-toc-item md-toc-h3" data-ref="n108"><a class="md-toc-inner" href="#our-vision">our vision </a></span></p></div><h1 id='user-guide'><font color="#cc8b13" size=5 face="Microsoft YaHei"><span>user guide</span></font></h1><hr /><h2 id='quick-tutorial'><font color="#cc8b13" size=4 face="Microsoft YaHei"><span>quick tutorial</span></font></h2><h3 id='installing-software'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>installing software </span></font><img src="./common/logo_devs.png" width="4%" height="4%"/></h3><p><img src="./images_en/cap002.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>Double-click to run setup</span></font>
<br>
<img src="./images_en/cap003.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>You can click Install Now</span></font>
<br>
<img src="./images_en/cap004.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>You can also adjust some options by clicking on custom options</span></font>
<br>
<img src="./images_en/cap005.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>Start the installation</span></font>
<br>
<img src="./images_en/cap006.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>installation complete</span></font>
<br>
<img src="./images_en/cap007.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>Desktop generated shortcuts</span></font>
<br>
<img src="./images_en/cap008.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Double click to launch</span></font>
<br></p><h3 id='add-the-project'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>add the project </span></font><img src="./common/com_btnAdd.svg"/></h3><p><img src="./images_en/cap009.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Next we add an item for inspection and analysis and click the New item button</span></font>
<br>
<img src="./images_en/cap010.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Next we add an item for inspection and analysis and click the New item button</span>
<span>Select existing projects in the project list, or browse to add projects that are not in the list</span></font>
<br>
<img src="./images_en/cap011.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Select the sample project named VS2019</span></font>
<br>
<img src="./images_en/cap012.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　After adding, double-click to start the project directly. Click to display the details page</span></font>
<br></p><h3 id='one-key-analysis'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>one key analysis </span></font><img src="./common/dev_btnOneRunAll.svg"/></h3><p><img src="./images_en/cap013.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the selected project in the workbench, and click the one-click test button in the project details page that pops up</span></font>
<br>
<img src="./images_en/cap014.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　One-click detection is started</span></font>
<br>
<img src="./images_en/cap015.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　You can see that the project checks have been run in sequence</span></font>
<br></p><h3 id='check-the-report-1'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>check the report </span></font><img src="./common/dev_btnLog.svg"/></h3><p><img src="./images_en/cap016.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　When the detection is completed, the project information page will be returned automatically. Click the report button in the upper right corner to enter the detailed report page to view the detection results</span></font>
<br>
<img src="./images_en/cap017.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Here you can see that there is a violation warning in line 53 of code. Click the edit file button on the right of the single violation information to open the corresponding source code file for viewing and modifying</span></font>
<br>
<img src="./images_en/cap018.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　After the source code file is opened, it will automatically locate the offending line and view the details of the offending description. Delete needs to be changed to delete[].</span></font>
<br></p><h3 id='adding-development-tools'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>adding development tools </span></font><img src="./common/com_btnAdd.svg"/></h3><p><img src="./images_en/cap019.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the New Development tool button</span></font>
<br>
<img src="./images_en/cap020.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Select existing tools in the tool list, or browse to add tools that are not in the list</span></font>
<br>
<img src="./images_en/cap021.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Double-click to start the tool. Click to display the details page</span></font>
<br></p><h3 id='adding-user-tools'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>adding user Tools </span></font><img src="./common/com_btnAdd.svg"/></h3><p><img src="./images_en/cap022.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the New Tool button</span></font>
<br>
<img src="./images_en/cap023.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Select existing tools in the tool list, or browse to add tools that are not in the list</span></font>
<br>
<img src="./images_en/cap024.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Double-click to start the tool. Click to display the details page</span></font>
<br></p><h3 id='run-the-plug-in-tool'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>run the plug-in tool </span></font><img src="./common/dev_btnTools.svg"/></h3><p><img src="./images_en/cap025.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Double-click the Plug-in Tools button to launch the plug-in tools</span></font>
</p></details></p><h3 id='recording-code-snippets'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>recording code snippets </span></font><img src="./common/com_btnCode.svg"/></h3><p><img src="./images_en/cap026.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　new folder</span></font>
<br>
<img src="./images_en/cap027.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Enter the name of the folder</span></font>
<br>
<img src="./images_en/cap028.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　New snippet</span></font>
<br>
<img src="./images_en/cap029.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Enter the name of the snippet, paste in the code, fill in the instructions, and click the Add button</span></font>
<br>
<img src="./images_en/cap030.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Complete the code snippet. When we need to use the code, select it and click one-click copy in the upper right corner of the details page</span></font>
<br></p><h1 id='the-detailed-function'><font color="#cc8b13" size=5 face="Microsoft YaHei"><span>The detailed function</span></font></h1><hr /><h2 id='workbench'><font color="#cc8b13" size=4 face="Microsoft YaHei"><span>workbench </span></font><img src="./common/dev_btnWorkSpace.svg"/></h2><h3 id='overview'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>overview</span></font></h3><p><br>
<img src="./images_en/cap031.png"/>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Project area: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Add/Modify/Delete items. This area lists all items that have been added</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Tool area: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Add/Modify/Remove development tools. This area lists all development tools that have been added</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Quick start area: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Provides a row of ICONS for quick startup of various tools</span></font>
<li><font color="#aa8b13" size=3 face="Microsoft YaHei"><span>The project area</span></font></li>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Add the project:</span></font>
<br>
<img src="./images_en/cap009.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the New project button</span></font>
<br>
<img src="./images_en/cap010.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Select existing projects in the project list, or browse to add projects that are not in the list</span></font>
<br>
<img src="./images_en/cap011.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Choose project</span></font>
<br>
<img src="./images_en/cap012.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　After adding, double-click to start the project directly. Click to display the details page</span></font>
<br>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Delete the project:</span></font>
<br>
<img src="./images_en/cap032.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the project icon and click the Delete project button on the project details page that appears</span></font>
<br>
<img src="./images_en/cap033.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Confirm whether to delete items (source items will not be deleted)</span></font>
<br>
<br>
<li><font color="#aa8b13" size=3 face="Microsoft YaHei"><span>Tool area</span></font></li>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Adding development tools:</span></font>
<br>
<img src="./images_en/cap019.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the New Development tool button</span></font>
<br>
<img src="./images_en/cap020.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Select existing tools in the tool list, or browse to add tools that are not in the list</span></font>
<br>
<img src="./images_en/cap021.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Double-click to start the tool. Click to display the details page</span></font>
<br>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Deleting development tools:</span></font>
<br>
<img src="./images_en/cap034.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the development tool icon and click the Delete button on the development tool details page that appears</span></font>
<br>
<img src="./images_en/cap035.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Confirm whether to delete the development tool</span></font>
<br>
<br>
<li><font color="#aa8b13" size=3 face="Microsoft YaHei"><span>Quick start area</span></font></li>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Add Quick Start:</span></font>
<br>
<span>　　</span><img src="./images_en/cap058.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　In the Developer Tools/My Tools/All Tools details page click Add to Quick Launch</span></font>
<br>
<br>
<span>　　</span><img src="./images_en/cap059.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　successfully added</span></font>
<br>
<br>
<span>　　</span><img src="./images_en/cap060.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the icon to start the tool directly</span></font>
<br>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Delete quick Start:</span></font>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　View batch delete Quick start</span></font>
<br></p><h3 id='project-indicators'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>project indicators </span></font><img src="./common/dev_btnInfo.svg"/></h3><p><br>
<span>　　</span><img src="./images_en/cap036.png"/>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Cyclomatic complexity: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Cyclomatic complexity is a measure of code complexity. Cyclomatic complexity is used to measure the complexity of a module&#39;s judging structure. In terms of quantity, cyclomatic complexity is the number of linearly independent paths, that is, the minimum number of paths needed to be tested reasonably to prevent errors. High cyclomatic complexity indicates that program code may be of low quality and difficult to test and maintain。</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Nesting depth: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>The set of statements inside curly braces is called a code block or compound statement code block and has its own declarative statements and other statements. A code block that is inside a function body or another code block is called a nested code block. Nesting depth is the number of layers of code blocks nested within valid parentheses.</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　The magic number: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>A number that has a special meaning but does not express it explicitly. There are a lot of these hard-to-read numbers in the program.</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Macro definition: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>It replaces certain text patterns according to a set of predefined rules. The interpreter or compiler automatically makes this pattern substitution when it encounters a macro.</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Violation of statistics: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>listed the current project static detection, dynamic detection of the total number of violations.</span></font></p><p><br>
<span>　　</span><img src="./images_en/cap078.png"/>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　detailed information: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Click Details to view the detailed metrics of a single file within the project</span></font>
<br>
<span>　　</span><img src="./images_en/cap079.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>Click the detailed indicator button on the right of a single file to enter the detailed information of the file</span></font>
<br>
<span>　　</span><img src="./images_en/cap080.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>This shows the metrics and function call relationships for individual files (required to complete doxygen running)</span></font>
<br>
<span>　　</span><img src="./images_en/cap079.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>Click the detailed indicator button on the right of the class name to view the detailed information of the class</span></font>
<br>
<span>　　</span><img src="./images_en/cap081.png"/>
<br></p><h3 id='compilation-run'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>compilation run </span></font><img src="./common/dev_btnCompile.svg"/></h3><p><br>
<span>　　</span><img src="./images_en/cap038.png"/>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　open: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Launch the development tool to open the project</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　open the folder: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Open the folder where the source project is located</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　compile: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Compile the project</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　recompile: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Recompile the project</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　run: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Run the project executable</span></font></p><h3 id='static-analysis'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>static analysis </span></font><img src="./common/dev_btnAnalyse.svg"/></h3><p><br>
<span>　　</span><img src="./images_en/cap037.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>Click the button to initiate this type of detection</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　code analysis: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Through lexical analysis, grammar analysis, control flow, data flow analysis and other techniques to scan the program code, check the consistency of the code and design, the code to the standard compliance, readability, the correctness of the logical expression of the code, the rationality of the code structure and other aspects.</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　encoding specification: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Find out the problems that violate the program writing standards, the unsafe, unclear and fuzzy parts of the program, find out the non-portable parts of the program, and the problems that violate the program programming style, including variable checking, naming and type checking, program logic checking, program syntax checking and program structure checking.</span></font></p><h3 id='dynamic-analysis'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>dynamic analysis </span></font><img src="./common/dev_btnDAnalyse.svg"/></h3><p><br>
<span>　　</span><img src="./images_en/cap039.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>Click the button to initiate this type of detection</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　memory leak : </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>It refers to the heap memory that has been dynamically allocated in the program is not released or cannot be released due to some reason, resulting in the waste of system memory, slowing down the program, and even system crash.</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　code coverage rate: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Is a measure in software testing that describes the percentage and extent to which the source code in a program is tested. The percentage is called code coverage.</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　performance analysis: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Sub-standard application performance can cause software or network problems. To ensure that the software meets or exceeds design expectations, it is necessary to analyze application performance to identify potential problems. It involves checking applications to make sure each component is working efficiently, and keeping a close eye on processor usage, network and system services, storage, and input/output (I/O) by design.</span></font></p><h3 id='code-tools'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>code tools </span></font><img src="./common/dev_btnTools.svg"/></h3><p><br>
<span>　　</span><img src="./images_en/cap040.png"/>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　code formatting: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>When code is typed or automatically generated in the source editor, it is formatted in certain ways, a process known as formatting code.</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Generating documentation: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>A file generation tool for a program that converts specific comments in the program into explanatory files. Most useful comments are descriptions of functions, types, and so on. Therefore, if the comments can be processed and reorganized into a pure reference manual according to the structure of the program itself.</span></font></p><h3 id='check-the-report-2'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>check the report </span></font><img src="./common/dev_btnLog.svg"/></h3><p><br>
<img src="./images_en/cap041.png"/>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Compile report: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>A compilation report is generated each time the compilation is complete</span></font>
<br>
<img src="./images_en/cap042.png"/>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Static analysis report: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Violations detected through static analysis means can be edited by clicking the file button</span></font>
<br>
<img src="./images_en/cap043.png"/>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Dynamic analysis report: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Violations detected through dynamic analysis means can be edited by clicking the file button</span></font>
<img src="./images_en/cap043.png"/>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Improve the code according to the report: </span></font>
<img src="./images_en/cap016.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　On the project information page, click the report button in the upper right corner to enter the detailed report page to view the test results</span></font>
<br>
<img src="./images_en/cap017.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Here you can see that there is a violation warning in line 53 of code. Click the edit file button on the right of the single violation information to open the corresponding source code file for viewing and modifying</span></font>
<br>
<img src="./images_en/cap018.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　After the source code file is opened, it will automatically locate the offending line and view the details of the offending description. Delete needs to be changed to delete[].</span></font>
<br>
<img src="./images_en/cap088.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　After opening the editor, modify the code according to the rules</span></font>
<img src="./images_en/cap089.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　The common functions of the editor are introduced</span></font>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　After editing the code, save it, and then we can check again to see if the modified violation still exists or has been resolved</span></font></p><h3 id='automatic-operation'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>automatic operation </span></font><img src="./common/dev_btnRunInOrder.svg"/></h3><p><br>
<span>　　</span><img src="./images_en/cap044.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the Automation Run button on the project details page</span></font>
<br>
<span>　　</span><img src="./images_en/cap045.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　On the automation details page that appears, you can select the automation items that you want to run</span></font></p><h3 id='task-manager'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>task manager </span></font><img src="./common/dev_btnTask.svg"/></h3><p><span>　　</span><img src="./images_en/cap084.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　When running a detection task, some information about the task can be displayed in real time, and the task can also be aborted</span></font></p><h3 id='other-details'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>other details</span></font></h3><p><br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Batch Deleting Items: </span></font>
<span>　　</span><img src="./images_en/cap048.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Select the multiple option button in the upper right corner of my workbench</span></font>
<br>
<span>　　</span><img src="./images_en/cap049.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Check the items we need to delete</span></font>
<br>
<span>　　</span><img src="./images_en/cap050.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the Delete item button</span></font>
<br>
<span>　　</span><img src="./images_en/cap051.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Confirm deletion</span></font>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Delete development tools in batches: </span></font>
<span>　　</span><img src="./images_en/cap048.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Select the multiple option button in the upper right corner of my workbench</span></font>
<span>　　</span><img src="./images_en/cap052.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Check the development tools we need to remove</span></font>
<br>
<span>　　</span><img src="./images_en/cap053.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the Delete Development Tools button</span></font>
<br>
<span>　　</span><img src="./images_en/cap054.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Confirm deletion</span></font>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Batch delete Quick start: </span></font>
<span>　　</span><img src="./images_en/cap048.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Select the multiple option button in the upper right corner of my workbench</span></font>
<br>
<span>　　</span><img src="./images_en/cap055.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Check the quick start we need to remove</span></font>
<br>
<span>　　</span><img src="./images_en/cap056.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the Delete quick start button</span></font>
<br>
<span>　　</span><img src="./images_en/cap057.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Confirm deletion</span></font>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Modifying project ICONS: </span></font>
<span>　　</span><img src="./images_en/cap046.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the project icon on the project details page to select a new replacement icon for the project</span></font>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Modifying project Name: </span></font>
<span>　　</span><img src="./images_en/cap047.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the project name on the project details page to edit the current project name</span></font></p><h2 id='tool-kit'><font color="#cc8b13" size=4 face="Microsoft YaHei"><span>tool kit</span></font></h2><h3 id='system-tools'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>system tools </span></font><img src="./common/dev_btnTools.svg"/></h3><p><span>　　</span><img src="./images_en/cap061.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　You can add some tools that come with the system to facilitate quick startup in the programming process</span></font></p><h3 id='the-user-tools'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>the user tools </span></font><img src="./common/dev_btnTools.svg"/></h3><p><font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　You can browse your local path to add installed tools for quick startup during programming</span></font></p><h3 id='plug-in-tool'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>plug-in tool </span></font><img src="./common/dev_btnTools.svg"/></h3><p><span>　　</span><img src="./images_en/cap062.png"/>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　communication tools: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Testing tools for various communication modes, to meet the requirements of the verification environment or testing, including serial port testing tools /TCPIP testing tools/file transfer</span></font>
<br>
<span>　　</span><img src="./images_en/cap063.png"/>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　graphical tools: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Graphics processing related tools, currently including screen capture/screen video/YUV player</span></font>
<br>
<span>　　</span><img src="./images_en/cap064.png"/>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　design tools: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Design processing related tools, currently including screen color</span></font>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　conversion tools: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Base conversion and other related tools</span></font>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　generating tools: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Random password generation, UUID generation and other related tools</span></font>
<br>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　miscellaneous tools: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Text encryption and decryption /JSON tools/timestamp tools and other related tools</span></font></p><h2 id='portfolio'><font color="#cc8b13" size=4 face="Microsoft YaHei"><span>portfolio </span></font><img src="./common/dev_btnFileBag.svg"/></h2><p><br>
<span>　　</span><img src="./images_en/cap090.png"/>
<br>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>You can record the commonly used codes to the data bag and browse the copy at any time</span></font></p><h3 id='folder'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>folder</span></font></h3><p><img src="./images_en/cap026.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　new folder</span></font>
<br>
<img src="./images_en/cap027.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Enter the name of the folder</span></font>
<br></p><h3 id='adding-snippets'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>adding snippets </span></font><img src="./common/com_btnCode.svg"/></h3><p><img src="./images_en/cap028.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　New snippet</span></font>
<br>
<img src="./images_en/cap029.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Enter the name of the snippet, paste in the code, fill in the instructions, and click the Add button</span></font>
<br>
<img src="./images_en/cap030.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Complete the code snippet. When we need to use the code, select it and click one-click copy in the upper right corner of the details page</span></font>
<br></p><h3 id='modifying-snippets'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>modifying snippets </span></font><img src="./common/com_btnCode.svg"/></h3><p><img src="./images_en/cap065.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Click the code snippet you want to modify, modify the content, and then click the Modify button to save</span></font>
<br></p><h3 id='deleting-code-snippets'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>deleting code snippets </span></font><img src="./common/com_btnClose.svg"/></h3><p><span>　　</span><img src="./images_en/cap066.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Right-click on the snippet you want to delete and choose Delete from the pop-up menu</span></font>
<br>
<span>　　</span><img src="./images_en/cap067.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Confirm deletion</span></font>
<br></p><h3 id='rename-folders'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>rename folders </span></font><img src="./common/com_btnRename.svg"/></h3><p><span>　　</span><img src="./images_en/cap068.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Right-click on the folder you want to rename</span></font>
<br>
<span>　　</span><img src="./images_en/cap069.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Enter the editing mode and change the name</span></font>
<br>
<span>　　</span><img src="./images_en/cap070.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　modification complete</span></font>
<br></p><h3 id='delete-folders'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>delete folders </span></font><img src="./common/com_btnClose.svg"/></h3><p><span>　　</span><img src="./images_en/cap071.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Right-click the folder you want to delete and choose Delete from the pop-up menu</span></font>
<br>
<span>　　</span><img src="./images_en/cap072.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Confirm deletion</span></font>
<br></p><h2 id='settings'><font color="#cc8b13" size=4 face="Microsoft YaHei"><span>settings </span></font><img src="./common/com_btnSettings.svg"/></h2><h3 id='multilanguage-switching'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>multilanguage switching </span></font><img src="./common/com_btnLanguage.svg"/></h3><p><span>　　</span><img src="./images_en/cap082.png"/>
<font color="#1395F9" size=3 face="Microsoft YaHei"><span>　　Currently, the supported languages are Chinese and English, which can be dynamically switched at any time</span></font>
<br>
<span>　　</span><img src="./images_en/cap083.png"/>
<br></p><h3 id='settings---general'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>settings - General </span></font><img src="./common/com_btnSettings.svg"/></h3><p><span>　　</span><img src="./images_en/cap085.png"/>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Save form position: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Save the position and size of the form when the program exits, and start the form directly by the saved position and size after the next startup</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Intelligently limit CPU usage: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Tasks are intelligently restricted based on the CPU usage to prevent excessive CPU usage</span></font>
<br></p><h3 id='setup---compile'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>setup - compile </span></font><img src="./common/dev_btnCompile.svg"/></h3><p><span>　　</span><img src="./images_en/cap086.png"/>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　QMake set: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>When C++ projects are Qt projects, you can add a Qt compiler suite</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　configuration: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Debug, Release, Debug&amp;Release optional</span></font>
<br></p><h3 id='setup---analysis'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>setup - Analysis </span></font><img src="./common/dev_btnAnalyse.svg"/></h3><p><span>　　</span><img src="./images_en/cap087.png"/>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　time-out period: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Default end time when a task times out</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　Select a feature to enable or disable: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Here you can enable/disable some detection functions that we are not interested in, both for automated detection and one-click detection</span></font>
<br></p><h3 id='settings---documents'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>settings - Documents </span></font><img src="./common/dev_btnEdit.svg"/></h3><br><h1 id='use-skill'><font color="#cc8b13" size=5 face="Microsoft YaHei"><span>use skill </span></font><img src="./common/com_btnHelp.svg"/></h1><hr /><h1 id='common-problem'><font color="#cc8b13" size=5 face="Microsoft YaHei"><span>common problem </span></font><img src="./common/com_btnHelp.svg"/></h1><hr /><h1 id='support'><font color="#cc8b13" size=5 face="Microsoft YaHei"><span>support </span></font><img src="./common/com_btnAbout.svg"/></h1><hr /><h3 id='support-content'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>support content </span></font><img src="./common/com_btnHelp.svg"/></h3><table border="1">
  <tbody><tr>
    <td><font color="#aa8b13" size="3" face="Microsoft YaHei">name</font></td>
    <td><font color="#1395F9" size="3" face="Microsoft YaHei">support</font></td>
	<td><font color="#1395F9" size="3" face="Microsoft YaHei">developing</font></td>
  </tr>
  <tr>
    <td><font color="#aa8b13" size="3" face="Microsoft YaHei">operating system</font></td>
    <td><img src="./common/windows.svg"><font color="#1395F9" size="3" face="Microsoft YaHei"> Windows7/8/10</font></td>
	<td valign="middle"><font color="#1395F9" size="3" face="Microsoft YaHei"> macOS </font><img src="./common/ubuntu.svg"><font color="#1395F9" size="3" face="Microsoft YaHei"> UOS </font></td>
  </tr>
  <tr>
    <td><font color="#aa8b13" size="3" face="Microsoft YaHei">programing language</font></td>
    <td><img src="./common/Language_cpp.svg"></td>
	<td><img src="./common/Language_java.svg"><img src="./common/Language_js.svg"><img src="./common/Language_csharp.svg"><img src="./common/Language_python.svg"><img src="./common/Language_go.svg"><img src="./common/Language_php.svg"><img src="./common/Language_ruby.svg"><img src="./common/Language_swift.svg"></td>
  </tr>
  <tr>
    <td><font color="#aa8b13" size="3" face="Microsoft YaHei">project type</font></td>
    <td><img src="./common/IDE_Qt.png" width="24px" height="24px/"><font color="#1395F9" size="3" face="Microsoft YaHei"> Qt</font><br>
	<img src="./common/IDE_VS2003.png" width="24px" height="24px/"><img src="./common/IDE_VS2005.png" width="24px" height="24px/"><img src="./common/IDE_VS2008.png" width="24px" height="24px/"><img src="./common/IDE_VS2010.png" width="24px" height="24px/"><img src="./common/IDE_VS2012.png" width="24px" height="24px/"><img src="./common/IDE_VS2013.png" width="24px" height="24px/"><img src="./common/IDE_VS2015.png" width="24px" height="24px/"><img src="./common/IDE_VS2017.png" width="24px" height="24px/"><img src="./common/IDE_VS2019.png" width="24px" height="24px/"><font color="#1395F9" size="3" face="Microsoft YaHei"> VS2003-VS2019</font></td>	
	<td><img src="./common/IDE_ECLIPSE.png" width="24px" height="24px/"><font color="#1395F9" size="3" face="Microsoft YaHei"> Eclipse</font><br><img src="./common/IDE_IntellijIDEA.png" width="24px" height="24px/"><font color="#1395F9" size="3" face="Microsoft YaHei"> Intellij IDEA</font></td>
  </tr>
</tbody></table><h1 id='service'><font color="#000000" size=5 face="Microsoft YaHei"><span>Service </span></font><img src="./common/com_btnVision.svg"/></h1><hr /><p><font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　software development: </span></font><font color="#000000" size=3 face="Microsoft YaHei"><span>Long - term C++ Qt Qml platform software development services</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　customized development: </span></font><font color="#000000" size=3 face="Microsoft YaHei"><span>Long - term SilkDevTools customized development services</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　code optimization: </span></font><font color="#000000" size=3 face="Microsoft YaHei"><span>C++/Qt/Qml code optimization services for enterprises and individuals</span></font></p><h1 id='about-us'><font color="#cc8b13" size=5 face="Microsoft YaHei"><span>about us </span></font><img src="./common/com_btnAbout.svg"/></h1><hr /><h3 id='contact-information'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>contact information </span></font><img src="./common/com_btnWriter.svg"/></h3><style type="text/css">
a.httplink:link {color: #1395F9}
a.httplink:hover {color: #aa8b13}
a.httplink:visited {color: #aa8b13}
</style>
<table border="1">
  <tbody><tr>
    <td><font color="#aa8b13" size="3" face="Microsoft YaHei">author</font></td>
    <td><font color="#1395F9" size="3" face="Microsoft YaHei">zhengtianzuo</font></td>
  </tr>
  <tr>
    <td><font color="#aa8b13" size="3" face="Microsoft YaHei">QQ</font></td>
    <td><font color="#1395F9" size="3" face="Microsoft YaHei">278969898</font></td>
  </tr>
  <tr>
    <td><font color="#aa8b13" size="3" face="Microsoft YaHei">mailbox</font></td>
    <td><font color="#1395F9" size="3" face="Microsoft YaHei">camelsoft@163.com</font></td>
  </tr>
  <tr>
    <td><font color="#aa8b13" size="3" face="Microsoft YaHei">homepage</font></td>
    <td><a class="httplink" href="http://www.camelstudio.cn">http://www.camelstudio.cn</a></td>
  </tr>
  <tr>
    <td><font color="#aa8b13" size="3" face="Microsoft YaHei">blog</font></td>
    <td><a class="httplink" href="http://blog.csdn.net/zhengtianzuo06">http://blog.csdn.net/zhengtianzuo06</a></td>
  </tr>
  <tr>
    <td><font color="#aa8b13" size="3" face="Microsoft YaHei">github</font></td>
    <td><a class="httplink" href="https://github.com/zhengtianzuo">https://github.com/zhengtianzuo</a></td>
  </tr>
  <tr>
    <td><font color="#aa8b13" size="3" face="Microsoft YaHei">gitee</font></td>
    <td><a class="httplink" href="https://gitee.com/zhengtianzuo">https://gitee.com/zhengtianzuo</a></td>
  </tr>
  <tr>
    <td><font color="#aa8b13" size="3" face="Microsoft YaHei">QQ group</font></td>
    <td><font color="#1395F9" size="3" face="Microsoft YaHei">199672080</font></td>
  </tr>
</tbody></table>
<div align="center">
    <img src="./common/allinone.png">
</div><br><table>
  <tbody><tr>
    <td align="center"><font color="#1395F9" size="3" face="Microsoft YaHei">Add QQ Friends</font></td>
    <td align="center"><font color="#1395F9" size="3" face="Microsoft YaHei">Add WeChat Friends</font></td>
	<td align="center"><font color="#1395F9" size="3" face="Microsoft YaHei">Paid Questions</font></td>
	<td align="center"><font color="#1395F9" size="3" face="Microsoft YaHei">WeChat Sponsor</font></td>
	<td align="center"><font color="#1395F9" size="3" face="Microsoft YaHei">Alipay Sponsor</font></td>
  </tr>
</tbody></table><h3 id='our-vision'><font color="#cc8b13" size=3 face="Microsoft YaHei"><span>our vision </span></font><img src="./common/com_btnVision.svg"/></h3><p><font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　vision: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Programmer&#39;s powerful local build tool</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　mission: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Create value, achieve customers and serve the industry</span></font>
<font color="#aa8b13" size=3 face="Microsoft YaHei"><span>　　sense of worth: </span></font><font color="#1395F9" size=3 face="Microsoft YaHei"><span>Mining functions, integrators and accurate services</span></font></p></div></div>
</body>
</html>